//
//  MoveViewController.m
//  OCUI
//
//  Created by login on 15-8-18.
//
//

#import "MoveViewController.h"
#import <QuartzCore/QuartzCore.h>
@interface MoveViewController ()

@end

@implementation MoveViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    // Do any additional setup after loading the view.
    self.view.backgroundColor = [UIColor whiteColor];
    
    //初始化
    CALayer *kkLayer = [[CALayer alloc]init];
    kkLayer.backgroundColor = [[UIColor grayColor]CGColor];
    kkLayer.frame = CGRectMake(10, 100, 40, 40);
    // 设定它的frame
    kkLayer.cornerRadius = 5;// 圆角处理
    [self.view.layer addSublayer:kkLayer]; // 增加到UIView的layer上面
    // 移动kkLayer的position
    CABasicAnimation *animation = [CABasicAnimation animationWithKeyPath:@"position"];
    animation.fromValue = [NSValue valueWithCGPoint:kkLayer.position];
    CGPoint toPoint = kkLayer.position;
    toPoint.x += 180;
    animation.toValue = [NSValue valueWithCGPoint:toPoint];
    // 以x轴进行旋转
    CABasicAnimation *rotateAnimation = [CABasicAnimation animationWithKeyPath:@"transform.rotation.x"];
    rotateAnimation.fromValue = [NSNumber numberWithFloat:0.0];
    rotateAnimation.toValue = [NSNumber numberWithFloat:6.0 * M_PI];
    // 对kkLayer进行放大缩小
    CABasicAnimation *scaoleAnimation = [CABasicAnimation animationWithKeyPath:@"transform.scale.x"];
    scaoleAnimation.duration = 3;
    scaoleAnimation.autoreverses = YES;
    scaoleAnimation.fromValue = [NSNumber numberWithFloat:1.0];
    scaoleAnimation.toValue = [NSNumber numberWithFloat:2.5];
    scaoleAnimation.fillMode = kCAFillModeForwards;
    
    
    // 把上面的动画组合起来
    CAAnimationGroup *group = [CAAnimationGroup animation];
    group.autoreverses = YES;
    // 完成后反向完成
    group.duration = 3.0;
    group.animations = [NSArray arrayWithObjects:animation,rotateAnimation, scaoleAnimation, nil];
    group.repeatCount = NSNotFound;
    // PS:动画结束以后，他会返回到自己原来的frame，如果不想到原来frame我们需要设定
    group.fillMode = kCAFillModeForwards;
    
    [kkLayer addAnimation:group forKey:@"kkLayerMove"];

}

- (void)didReceiveMemoryWarning {
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}

/*
#pragma mark - Navigation

// In a storyboard-based application, you will often want to do a little preparation before navigation
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
    // Get the new view controller using [segue destinationViewController].
    // Pass the selected object to the new view controller.
}
*/

@end
